<?php

/**
 * Description of Test
 *
 * @author Dingo
 */
class Modul_Admin_Artykul_Lista extends Modul_Admin_Abstract {

    protected $nazwaModulu = 'Admin_Aktualnosci_Lista';

    public function inicjalizuj() {
        $this->strona = array('tytul' => 'Lista artykułów');
        $this->szablon = array('tpl1' => '../Admin/Artykul/Lista.tpl');

        if (isset($this->param['akcja']) &&
                $this->param['akcja'] == 'xml') {
            $this->xml();
        }
    }

    private function xml() {
        $grid = new Helper_FlexiGridJSON(); //stworzenie obiektu Grida
        //ustawienie warunków zapytania
        $where = $grid->getPrzeszukaj();
        $where['status'] = 1;

        //ustawienie ilości wszystkich rekordów, aby można było wyliczyć liczbę
        //dostępnych stron
        $grid->setWszystkie(Aktualnosci::Count('Aktualnosci', $where));

        //zapytanie o wyniki do wyświetlenia
        $wyniki = Aktualnosci::FindAll('Aktualnosci', $where,
                        $grid->getSortowanie(), $grid->getLimitIle(),
                        $grid->getLimitOd());

        //dodawanie nazwy użytkownika do wyników:
        function mapuj(&$v) {
            //dodanie nazwy użytkownika
            $v->uzytkownik = $v->find_parent('Uzytkownik')->login;
            //zmiana statusu 0 => 'ukryty', 1 => 'pokazuj'
            if ($v->status == 0) {
                $v->status = 'ukryty';
            } else if ($v->status == 1) {
                $v->status = 'pokazuj';
            }
            //znajdowanie tagów
            $tagi = $v->find_attached('Tagi');
            $tag = '';
            foreach ($tagi as $v2) {
                $tag .= $v2->tag . ', ';
            }
            $v->tagi = substr($tag, 0, -2);
        }

        array_map("mapuj", $wyniki);

        //kodowanie do formatu JSON
        $grid->kodujJSON($wyniki, array('id', 'uzytkownik', 'url', 'tytul',
            'zajawka', 'datadodania', 'komentarze', 'tagi', 'status'));
        die();
    }

}

?>
